home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / x68000.arc / SOURCE.ARC / LONGNUMB.DEF < prev    next >
Text File  |  1986-03-04  |  2KB  |  68 lines

  1. DEFINITION MODULE LongNumbers;            
  2. (* Routines to handle HEX digits for the X68000 cross assembler. *)
  3. (* All but LongPut and LongWrite are limited to 8 digit numbers. *)
  4.  
  5.    FROM FileSystem IMPORT
  6.       File;
  7.  
  8.    EXPORT QUALIFIED
  9.       LONG, LongClear, LongAdd, LongSub, LongInc, LongDec, 
  10.       LongCompare, CardToLong, LongToCard, LongToInt, LongPut, 
  11.       LongWrite, StringToLong, BinStrToLong, AddrBoundL, AddrBoundW;
  12.  
  13.    CONST
  14.       DIGITS = 8;
  15.       BASE = 16;
  16.  
  17.    TYPE
  18.       LONG = ARRAY [1..DIGITS] OF INTEGER;
  19.  
  20.  
  21.    PROCEDURE LongClear (VAR A : LONG);
  22.    (* Sets LONG to Zero *)
  23.  
  24.    PROCEDURE LongAdd (A, B : LONG; VAR Result : LONG);
  25.    (* Add two LONGs, giving Result *)
  26.  
  27.    PROCEDURE LongSub (A, B : LONG; VAR Result : LONG);
  28.    (* Subtract two LONGs (A - B), giving Result *)
  29.  
  30.    PROCEDURE CardToLong (n : CARDINAL; VAR A : LONG);
  31.    (* Converts CARDINAL to LONG *)
  32.  
  33.    PROCEDURE LongToCard (A : LONG; VAR n : CARDINAL) : BOOLEAN;
  34.    (* Converts LONG TO CARDINAL, returns FALSE if conversion impossible *)
  35.  
  36.    PROCEDURE LongToInt (A : LONG; VAR n : INTEGER) : BOOLEAN;
  37.    (* Converts LONG to INTEGER, returns FALSE if conversion impossible *)
  38.  
  39.    PROCEDURE LongInc (VAR A : LONG; n : CARDINAL);
  40.    (* Increment LONG by n *)
  41.  
  42.    PROCEDURE LongDec (VAR A : LONG; n : CARDINAL);
  43.    (* Decrement LONG by n *)
  44.  
  45.    PROCEDURE LongCompare (A, B : LONG) : INTEGER;
  46.    (* Returns: 0 if A = B, -1 if A < B, +1 if A > B *)
  47.  
  48.    PROCEDURE LongPut (VAR f : File; A : ARRAY OF INTEGER; Size : CARDINAL);
  49.    (* Put LONG number in FILE f *)
  50.  
  51.    PROCEDURE LongWrite (A : ARRAY OF INTEGER; Size : CARDINAL);
  52.    (* Write LONG number to console screen *)
  53.  
  54.    PROCEDURE StringToLong (S : ARRAY OF CHAR; VAR A : LONG) : BOOLEAN;
  55.    (* Converts a string (in HEX, maximum of 32 bits) into a LONG *)
  56.  
  57.    PROCEDURE BinStrToLong (S : ARRAY OF CHAR; VAR A : LONG) : BOOLEAN;
  58.    (* Converts a string (in Binary, maximum of 16 bits) into a LONG *)
  59.  
  60.    PROCEDURE AddrBoundL (VAR A : LONG);
  61.    (* Forces Address to a 68000 long word boundary *)
  62.  
  63.    PROCEDURE AddrBoundW (VAR A : LONG);
  64.    (* Forces Address to a 68000 word boundary *)
  65.  
  66. END LongNumbers.
  67.  
  68.